package com.turing.post.cardmanagement.util;

import java.math.BigInteger;

import javax.ejb.Local;
import javax.ejb.Remote;
import com.turing.post.cardmanagement.util.MakeCardApproval;
import com.turing.post.util.PCPSApplicationException;
import com.turing.post.util.PCPSWebInput;

/**
 * 卡审批主要业务逻辑实现
 * 
 * @author YangShuo
 * 
 */

@Remote
@Local
public interface MakeCardApprovalBusiness {

	/**
	 * 提交制卡申请
	 * 
	 * @param MakeCardApproval对象
	 */
	public BigInteger creatMakeCardApproval(PCPSWebInput webInput,
			MakeCardApproval mac) throws PCPSApplicationException;

	/**
	 * 业务审批制卡申请 ，同意
	 * 
	 * @param webInput
	 * 
	 * @param MakeCardApplyForId
	 *            申请ID
	 * @param AuthOperNo
	 *            审批人
	 * 
	 */
	public void approvalMakeCardApprovalBySale(PCPSWebInput webInput,
			BigInteger MakeCardApplyForId, BigInteger AuthOperNo)
			throws PCPSApplicationException;

	/**
	 * 业务制卡申请 ，拒绝
	 * 
	 * @param webInput
	 * 
	 * @param MakeCardApplyForId
	 *            申请ID
	 * @param RejectedOperNo
	 *            审批人
	 * @param RejectedReason
	 *            拒绝原因
	 */
	public void rejecteMakeCardApprovalBySale(PCPSWebInput webInput,
			BigInteger MakeCardApplyForId, BigInteger RejectedOperNo,
			String RejectedReason) throws PCPSApplicationException;

	/**
	 * 财务审批制卡申请 ，同意
	 * 
	 * @param webInput
	 * 
	 * @param MakeCardApplyForId
	 *            申请ID
	 * @param AuthOperNo
	 *            审批人
	 * 
	 */
	public void approvalMakeCardApprovalByFINANCE(PCPSWebInput webInput,
			BigInteger MakeCardApplyForId, BigInteger AuthOperNo)
			throws PCPSApplicationException;

	/**
	 * 财务制卡申请 ，拒绝
	 * 
	 * @param webInput
	 * 
	 * @param MakeCardApplyForId
	 *            申请ID
	 * @param RejectedOperNo
	 *            审批人
	 * @param RejectedReason
	 *            拒绝原因
	 */
	public void rejecteMakeCardApprovalByFINANCE(PCPSWebInput webInput,
			BigInteger MakeCardApplyForId, BigInteger RejectedOperNo,
			String RejectedReason) throws PCPSApplicationException;

	/**
	 * 制卡申请修改
	 * @param webInput
	 * @param mac
	 * @throws PCPSApplicationException
	 */
	public void updateMakeCardApproval(PCPSWebInput webInput,
			MakeCardApproval mac) throws PCPSApplicationException;
	
	/**
	 * 根据申请单号删除制卡申请单
	 * @param webInput
	 * @param mac
	 * @throws PCPSApplicationException
	 */
	public void deleteMakeCardApprovalByID(PCPSWebInput webInput,
			MakeCardApproval mac) throws PCPSApplicationException;
}
